package com.zhiyou100.api.date_demo;

import java.util.Calendar;
import java.util.Date;
import java.util.Scanner;

public class Demo1 {

    public static void main(String[] args) {
//        testDate();
        Calendar calendar = Calendar.getInstance();
        calendar.set(Calendar.MINUTE,21);
        testOrders(calendar.getTime());
    }


    /**
     * 假设商品下单时间是当前时间---30秒    是正常订单，如果超过时间默认是一个非法订单
     */
    public static void testOrders(Date ordersDate){
        Date beginDate = new Date();   //开始时间
        Date endDate = new Date(beginDate.getTime() + 60 * 1000);  //结束时间
        //假设程序休眠 10s
        try {
            Thread.sleep(1000 * 10);
        }catch (Exception e){
            e.printStackTrace();
        }
        //生成一个订单时间
//        Date ordersDate = new Date();
        if (ordersDate.after(beginDate) && ordersDate.before(endDate)){
            System.out.println("这是一个正常订单");
        }else {
            System.out.println("这是一个非法订单");
        }
    }



    /**
     * 假设，某一天特定时间要去做一件事，
     * 而且那个时间已经过去一分钟之后才想起来这件事还没有办，
     * 这时系统将会提示已经过去了多 长时间。
     */
    public static void testDate(){
        Scanner scanner = new Scanner(System.in);
        System.out.println("请输入你要做的事情");
        String title = scanner.next();
        Date date = new Date(System.currentTimeMillis() + 3000); //假设这件事情需要立刻去做
        System.out.println(title + "发生时间是：" + date);
        //假设我们睡着了
        try {
            Thread.sleep(1000);
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
        Date date2 = new Date();
        System.out.println("睡醒了之后时间是：" + date2);
        long time = date.getTime();   //获取时间的毫秒值
        long time2 = date2.getTime();
        //判断时间的前后  date2.before(date)    date2.compareTo(date)
        if (date2.compareTo(date) == -1){
            //输出格式：你还有5秒中去完成某件事情
            long s = (time - time2) / 1000;
            System.out.println("你还有" + s + "秒去完成" + title + "事情");
        }else {
            long s = (time2 - time) / 1000;
            System.out.println("对不起，事情已经过去" + s + "秒了!!!!!");
        }
    }


    //Date的创建
    public static void getDate(){
        //默认获取本地系统时间   Sat Jan 15 16:33:31 CST 2022
        Date date = new Date();
        System.out.println("date = " + date);
        //根据指定的毫秒值创建一个日期
        long millis = System.currentTimeMillis() + 60 * 60 * 1000;
        date = new Date(millis);
        System.out.println("date = " + date);
        //修改时间
        date.setTime(date.getTime() + 60 * 1000);
        System.out.println("date = " + date);
        //已被废弃
//        date.setYear(2020);
    }


}
